1
Do Prompt ao Pipeline: Uma Visão Geral da Orquestração com LangChain
AI010Lesson 6
00:00

Do Prompt ao Pipeline

A Evolução da Interatividade com Modelos de Linguagem

Nas lições anteriores, focamos em interações com um único prompt. No entanto, aplicações do mundo real exigem mais do que apenas uma pergunta e resposta isoladas. Para construir sistemas de IA escaláveis, devemos nos mover para Orquestração. Isso envolve conectar múltiplas chamadas de modelo de linguagem, criar lógica condicional com base na entrada do usuário e permitir que o modelo interaja com dados externos.

Os Blocos Básicos da Orquestração

  • LLMChain: A unidade básica. Combina um Modelo de Prompt com um Modelo de Linguagem.
  • Cadeias Sequenciais: Permite criar um fluxo de trabalho de múltiplos passos onde a saída de um passo se torna a entrada do próximo.
  • Cadeias de Roteamento: Atuam como "controladores de tráfego", usando um modelo de linguagem para decidir qual subcadeia especializada deve lidar com uma solicitação específica (por exemplo, encaminhar uma pergunta de matemática para uma "Cadeia de Matemática" e uma pergunta de história para uma "Cadeia de História").

O Princípio Central: A Regra da Cadeia

As cadeias permitem combinar múltiplos componentes — modelos, prompts e memória — em uma única aplicação coerente. Essa modularidade garante que tarefas complexas possam ser divididas em etapas gerenciáveis e debugáveis.

Dica Profissional: Depuração de Pipelines
Quando seus pipelines ficarem complexos, use langchain.debug = True. Esta "visão de raio-X" permite ver os prompts exatos enviados e as saídas brutas recebidas no fundo, em cada estágio da cadeia.
sequential_chain.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>
Question 1
In LangChain, what is the primary difference between a SimpleSequentialChain and a standard SequentialChain?
SimpleSequentialChain supports multiple input variables, while SequentialChain does not.
SimpleSequentialChain only supports a single input and single output flowing between steps.
Only SequentialChain can be used with ChatOpenAI models.
Challenge: Library Support Router
Design a routing mechanism for a specialized bot.
You are building a support bot for a library.

Define the logic for a RouterChain that distinguishes between "Book Recommendations" and "Operating Hours."
Step 1
Create two prompt templates: one for book suggestions and one for library schedule info.
Solution:
book_template = """You are a librarian. Recommend books based on: {input}"""
schedule_template = """You are a receptionist. Answer hours queries: {input}"""

prompt_infos = [
    {"name": "books", "description": "Good for recommending books", "prompt_template": book_template},
    {"name": "schedule", "description": "Good for answering operating hours", "prompt_template": schedule_template}
]
Step 2
Define the router_template to guide the LLM on how to classify the user's intent, and initialize the chain.
Solution:
router_template = MULTI_PROMPT_ROUTER_TEMPLATE.format(
    destinations=destinations_str
)
router_prompt = PromptTemplate(
    template=router_template,
    input_variables=["input"],
    output_parser=RouterOutputParser(),
)
router_chain = LLMRouterChain.from_llm(llm, router_prompt)

chain = MultiPromptChain(
    router_chain=router_chain,
    destination_chains=destination_chains,
    default_chain=default_chain,
    verbose=True
)